In many network systems, such as packet switched networks (e.g., Ethernet networks), it is often desirable for a single end station to send the same data to multiple other end stations on the network. For example, in a conventional e-mail system, a user may desire to send the same e-mail message to four different users connected to the e-mail system.
In a packet switched network, a switch makes the forwarding decision when it receives frames of data from an end station through a port of the switch. If the frame is to be transmitted to a number of end stations, the switch must make the forwarding decision to forward a copy of that frame to the correct ports.
In nearly every system, there may occur instances in which the resources of the system are overtaxed. For example, in a network switch with multiple ports, outgoing traffic on one or more of the ports may be at such a level that congestion occurs at certain ports, making these ports at least temporarily unavailable for transmitting traffic. Other ports may remain open for transmitting copies of the traffic. Hence, circumstances may arise where some of the ports designated for transmission of a copy of the same data are blocked, while other designated ports are not blocked.
In conventional multiport network switches, when all of the ports designated to transmit a copy of data are blocked, the data is discarded and management is notified of the discarded data. The same discarding procedure is also performed when only some of the designated ports are blocked while others are not blocked. In other words, in this situation, the data is completely discarded and no copies are sent out, even if only one port is blocked and ten ports are not blocked. This procedure may cause a relatively large amount of data to be discarded in times of congestion, since congestion at only one designated port will result in preventing data from being provided to the remaining ports of the switch.